7年经验社招终于上岸Java开发!
你好,我是 Guide。今天来分享一位球友的面试经历,这位朋友工作已经 7 年,之前一直从事 PHP 开发工作,微信公众号开发、保险行业都做过。2 月 21 号的时候正式提交离职申请,3.1 号开始学习 Java。
4 月 18 号的时候,成功拿到了自己的第一个 Java 后端开发 Offer。
下面是正文。
本人今天刚刚收到 offer 了,所以特别来分享一下我面试中遇到的问题以及面试需要注意的事项,绝对有用!!!
第一家公司
第一家公司公司主要是一个负责供应链采购的公司,面试的部分问题如下:
先做个自我介绍。 现有一多文件上传需求,要求在 5M 带宽的服务器上上传超过 100 张图片,并且保证用户可以尽快看到上传结果。 springcloud 中 A 服务要调用 B 服务,同时需要将 token 传入 B 服务中,请问使用什么方式传递? 讲一下你现在做的系统的业务逻辑,用到了什么技术? mybatis 分页是怎么做的? 事务你用过吗? 用过哪些工具类?处理时间和 JSON 你是用的什么工具? MongoDB 中针对于百万级别的数据,如何优化查询?如何分页?如何创建索引?做过数据统计那么统计的精度是每天还是每个月还是每年?如果去动态查询这些统计数据?
总结 :这家公司比较小,主要是目前需要一个技术快速上手做项目,我面试的时候都回答的不错,本以为会当天收到通知,结果过了两天才收到通知而且还降低了我的薪资,所以果断选择放弃。这个公司主要面试的就是业务能力,比较看重项目经验,底层原理问的比较少,接下来这家公司就是重头戏了。
第二家公司
第二家公司是一个集团,先有笔试再有面试,部分面试问题如下:
先做一个 10 分钟左右的简短介绍,包括几个方面:你工作的经验,你在这些工作中你的优势是什么?你擅长什么? mybatis 中的#{}和${}有什么区别?默认使用哪个?为什么这么使用? 介绍一下 Spring,说一下 Spring 常用注解的用途。 说一下 SpringAOP 的概念,实际运用场景。 现在有个对象 user,通过参数传递到其他方法中去,然后 user 的 name 改变了,那么传递的这个对象是值传递还是引用传递,为什么?顺便解释一下值传递和引用传递。 项目中是如何使用事务的? 项目中用过多线程吗?如何保证多线程线程安全的?具体你做了哪些操作来实现的? 你之前做过 PHP?你讲一下 PHP 和 Java 的区别呢?
总结 :这家公司招聘的技术难读明细比上一家公司更大了,很多问题不仅需要你回答出来,还得要了解底层原理。我当时因为回答的是业务型开发,所以就中断了面试了,因为他们想找架构型的开发。
第三家公司
第三家公司也是一个小公司,最终收获 offer,部分面试问题如下:
先做一个自我介绍(这是必须的) 说一下你之前做项目的一个业务流程(详细业务流程) 这个项目你使用了多线程吗?你是如何实现的? 你说多线程这块你做了性能优化,你能说一下优化的方式和优化的结果吗? 事务使用过吗?事务和锁一起使用会不会有什么问题?是先使用锁还是先使用事务? springcloud 的注册服务使用的什么?除了这个还有其他的了解吗? 消息队列用过吗?你大致讲一下。
总结 :这家公司主要是看中的项目能力,就是你在实际项目中遇到的实际问题要如何解决,之前两家也问过这些问题,但是当时自己回答的太糟糕了所以后面总结了一下,然后就顺利答出来了。
参考答案
你可以在下面两份参考资料上面大部分问题的参考答案:
JavaGuide 在线阅读版:https://javaguide.cn/ 《Java 面试指北》
总结
最后再总结一下,做自己介绍的时候,先介绍自己的开发经验,然后介绍自己上一家公司,最后介绍自己的拿手项目。面试的时候大多数会问项目相关的问题,所以我们在面试之前一定要提前准备好项目相关的业务逻辑,哪怕你只做了一小块功能,你也要提前去了解整个项目的业务流程,并且能说出一二来。还有就是关于技术有两个方向,一个是底层逻辑的实现,另一个就是这个技术在项目中的实际运用。这些不需要我们真的遇到,但是你一定要提前假设遇到这些问题如何处理。总结一句话就是考验应聘者处理问题的能力和学习能力。
·········· END ··············
近期文章精选 :
如果本文对你有帮助的话,欢迎点赞&在看&分享,这对我继续分享&创作优质文章非常重要。感谢🙏🏻